package algorithm;

/**
 * 给定一个由整数组成的非空数组所表示的非负整数，在该数的基础上加一
 * @author rongkai
 * @description:
 * @date 2021/3/7
 */
public class Solution7 {

    public static void main(String[] args) {
        int[] nums = {1,9,9};
        int[] solution = solution(nums);
        for (int i : solution) {
            System.out.println(i);
        }
    }

    /**
     * 简单粗暴，直接判断当前值是不是9,如果是9就需要进一位，要注意超出999的情况
     * @param nums
     * @return
     */
    public static int[]  solution(int[] nums){
        boolean add = true;
        for (int i = nums.length-1; i>=0; i--) {
            int num = nums[i];
            if (add){
                if (num == 9){
                    add = true;
                    nums[i] = 0;
                }else{
                    nums[i] = num+1;
                    add = false;
                }
            }

        }

        if (add){
           int[] nums1 = new int[nums.length+1];
           nums1[0] = 1;
           for (int i = 1; i < nums1.length; i++) {
                nums1[i] = nums[i-1];
           }
           return nums1;
        }
        return nums;
    }
}
